package com.eastcom.groovy.config

import com.eastcom.groovy.config.BasePath

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name="server-path")
public class ServerPath {
	@XmlElement(name="base-config")
	BasePath baseConfigPath;
	@XmlElement(name="task-config")
	TaskConfigPath taskConfigPath;
	@XmlTransient
	String rootPath
	public ServerPath() {
		super();
		// TODO 自动生成的构造函数存根
	}
	public BasePath getBaseConfigPath() {
		return baseConfigPath;
	}
	public void setBaseConfigPath(BasePath baseConfigPath) {
		this.baseConfigPath = baseConfigPath;
	}

	TaskConfigPath getTaskConfigPath() {
		return taskConfigPath
	}

	void setTaskConfigPath(TaskConfigPath taskConfigPath) {
		this.taskConfigPath = taskConfigPath
	}

	void reInit(){
		File ft
		if(rootPath != null){
			if(baseConfigPath.base != null && !baseConfigPath.base.startsWith("/") && !baseConfigPath.base.contains(":")){
				baseConfigPath.base = "/"+rootPath+"/"+ baseConfigPath.base
			}
			if(baseConfigPath.dao != null && !baseConfigPath.dao.startsWith("/") && !baseConfigPath.dao.contains(":")){
				baseConfigPath.dao = "/"+rootPath+"/"+ baseConfigPath.dao
			}
			if(!baseConfigPath.job.startsWith("/") && !baseConfigPath.job.contains(":")){
				baseConfigPath.job = "/"+rootPath+"/"+ baseConfigPath.job
			}
			if(baseConfigPath.properties != null){
				List<String> list = new ArrayList()
				baseConfigPath.properties.each{
					if(!it.startsWith("/") && !it.contains(":")){
						String temp = "/"+rootPath+"/"+ it
						list.add(temp)
					}
				}
				baseConfigPath.properties = list
			}

			if(baseConfigPath.server != null && !baseConfigPath.server.startsWith("/") && !baseConfigPath.server.contains(":")){
				baseConfigPath.server = "/"+rootPath+"/"+ baseConfigPath.server
			}
			if(taskConfigPath.properties != null){
				List<String> list = new ArrayList()
				taskConfigPath.properties.each {
					if(!it.startsWith("/") && !it.contains(":")){
						String temp = "/"+rootPath+"/"+ it
						list.add(temp)
					}
				}
				taskConfigPath.properties = list
			}
			if(taskConfigPath.taskPath != null){
				List<String> list = new ArrayList()
				taskConfigPath.taskPath.each {
					if(!it.startsWith("/") && !it.contains(":")){
						String temp = "/"+rootPath+"/"+ it
						list.add(temp)
					}
				}
				taskConfigPath.taskPath=list
			}
		}
		//			try {
		//				ft = new File(baseConfigPath.base)
		//				if(!ft.exists()){
		//					baseConfigPath.base = rootPath+"/"+ baseConfigPath.base
		//				}
		//			} catch (Exception e) {
		//				e.printStackTrace()
		//				baseConfigPath.base = rootPath+"/"+ baseConfigPath.base
		//			}
		//			try {
		//				ft = new File(baseConfigPath.dao)
		//				if(!ft.exists()){
		//					baseConfigPath.dao = rootPath+"/"+ baseConfigPath.dao
		//				}
		//			} catch (Exception e) {
		//				e.printStackTrace()
		//				baseConfigPath.dao = rootPath+"/"+ baseConfigPath.dao
		//			}
		//			try {
		//				ft = new File(baseConfigPath.job)
		//				if(!ft.exists()){
		//					baseConfigPath.job = rootPath+"/"+ baseConfigPath.job
		//				}
		//			} catch (Exception e) {
		//				e.printStackTrace()
		//				baseConfigPath.job = rootPath+"/"+ baseConfigPath.job
		//			}
		//			baseConfigPath.properties.each{
		//				try {
		//					ft = new File(it)
		//					if(!ft.exists()){
		//						it = rootPath+"/"+ it
		//					}
		//				} catch (Exception e) {
		//					e.printStackTrace()
		//					it = rootPath+"/"+ it
		//				}
		//			}
		//
		//			try {
		//				ft = new File(baseConfigPath.server)
		//				if(!ft.exists()){
		//					baseConfigPath.server = rootPath+"/"+ baseConfigPath.server
		//				}
		//			} catch (Exception e) {
		//				e.printStackTrace()
		//				baseConfigPath.server = rootPath+"/"+ baseConfigPath.server
		//			}
		//			taskConfigPath.properties.each {
		//				try {
		//					ft = new File(it)
		//					if(!ft.exists()){
		//						it = rootPath+"/"+ it
		//					}
		//				} catch (Exception e) {
		//					e.printStackTrace()
		//					it = rootPath+"/"+ it
		//				}
		//			}
		//			taskConfigPath.taskPath.each {
		//				try {
		//					ft = new File(it)
		//					if(!ft.exists()){
		//						it = rootPath+"/"+ it
		//					}
		//				} catch (Exception e) {
		//					e.printStackTrace()
		//					it = rootPath+"/"+ it
		//				}
		//			}
	}
}
